/**   
 * Copyright © 2019 eSunny Info. Tech Ltd. All rights reserved.
 * 
 * @Description:TODO(功能)
 * @className DaseDao.java
 * @Package: page16 
 * @author: yj   
 * @date: 2019年1月16日 上午10:00:53 
 */
package com.erp.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.erp.po.OrderDetail;

/**
 * @className DaseDao.java
 * @author yj
 * @Description:TODO(功能)
 * @Date 2019年1月16日
 */
public class BaseDao {
	
	private Connection conn;
	private PreparedStatement ps;
	private ResultSet set;
	
	
	// 通用的增 删 改
	public int updateData(Connection conn , String sql , Object... obj) throws SQLException {
		this.conn = conn;
		ps = conn.prepareStatement(sql);
		
		if (obj != null) {
			for (int i = 0; i < obj.length; i++) {
				ps.setObject(i+1, obj[i]);
			}
		}
		return ps.executeUpdate();
	}
	
	// 通用查询
	public ResultSet selectData(Connection conn , String sql , Object... obj) throws SQLException {
		this.conn = conn;
		ps = conn.prepareStatement(sql);
		
		if (obj != null) {
			for (int i = 0; i < obj.length; i++) {
				ps.setObject(i+1, obj[i]);
			}
		}
		return ps.executeQuery();
	}
	
	// 通用的 批量增加
	// 批量增加时, 传入的数据为 维数组
	// OrderDetail[][] : 其中一维存的是添加的一个对象 , 二维存的是每个对象需要添加的值
	public int[] insertMoveData(Connection conn , String sql , Object[][] obj) throws SQLException{
		this.conn = conn;
		ps = conn.prepareStatement(sql);
		
		for(int i = 0; i < obj.length ; i++) {
			for (int j = 0; j < obj[i].length; j++) {
				ps.setObject(j+1, obj[i][j]);
			}
			// 加包  -- 把需要添加的数据对象 添加到缓存
			ps.addBatch();
		}
		return ps.executeBatch();
	}
	
	
	// 通用的 批量删除
	
	//关闭资源
	public void close() {
		try {
			if (set != null) {
				set.close();
			}
			if (ps != null) {
				ps.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	

}
